{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "5d904dee",
   "metadata": {},
   "source": [
    "# Example 1: Function Fitting\n",
    "\n",
    "### In this example, we will cover how to leverage grid refinement to maximimze KANs' ability to fit functions"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "94056ef6",
   "metadata": {},
   "source": [
    "### intialize model and create dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0a59179d",
   "metadata": {},
   "outputs": [],
   "source": [
    "from kan import *\n",
    "\n",
    "# initialize KAN with G=3\n",
    "model = KAN(width=[2,1,1], grid=3, k=3)\n",
    "\n",
    "# create dataset\n",
    "f = lambda x: torch.exp(torch.sin(torch.pi*x[:,[0]]) + x[:,[1]]**2)\n",
    "dataset = create_dataset(f, n_var=2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cb1f817e",
   "metadata": {},
   "source": [
    "### Train KAN (grid=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a87b97b0",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "train loss: 1.54e-02 | test loss: 1.50e-02 | reg: 3.01e+00 : 100%|██| 20/20 [00:03<00:00,  6.45it/s]\n"
     ]
    }
   ],
   "source": [
    "model.train(dataset, opt=\"LBFGS\", steps=20);"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "52294efd",
   "metadata": {},
   "source": [
    "### The loss plateaus - we want a more fine-grained KAN!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "3f1cfc9d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# initialize a more fine-grained KAN with G=10\n",
    "model2 = KAN(width=[2,1,1], grid=10, k=3)\n",
    "# initialize model2 from model\n",
    "model2.initialize_from_another_model(model, dataset['train_input']);"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f3cc5079",
   "metadata": {},
   "source": [
    "### Train KAN (grid=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "898b1794",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "train loss: 3.18e-04 | test loss: 3.29e-04 | reg: 3.00e+00 : 100%|██| 20/20 [00:02<00:00,  6.87it/s]\n"
     ]
    }
   ],
   "source": [
    "model2.train(dataset, opt=\"LBFGS\", steps=20);"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bcdc0d3d",
   "metadata": {},
   "source": [
    "### The loss becomes lower, which is good! Now we can even iteratively making grids finer."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a1c25e8a",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "train loss: 6.73e-03 | test loss: 6.62e-03 | reg: 2.86e+00 : 100%|██| 50/50 [00:06<00:00,  7.28it/s]\n",
      "train loss: 4.32e-04 | test loss: 4.15e-04 | reg: 2.89e+00 : 100%|██| 50/50 [00:07<00:00,  6.93it/s]\n",
      "train loss: 4.59e-05 | test loss: 4.51e-05 | reg: 2.88e+00 : 100%|██| 50/50 [00:12<00:00,  4.01it/s]\n",
      "train loss: 4.19e-06 | test loss: 1.04e-05 | reg: 2.88e+00 : 100%|██| 50/50 [00:30<00:00,  1.63it/s]\n",
      "train loss: 1.62e-06 | test loss: 8.17e-06 | reg: 2.88e+00 : 100%|██| 50/50 [00:40<00:00,  1.24it/s]\n"
     ]
    }
   ],
   "source": [
    "grids = np.array([5,10,20,50,100])\n",
    "\n",
    "train_losses = []\n",
    "test_losses = []\n",
    "steps = 50\n",
    "k = 3\n",
    "\n",
    "for i in range(grids.shape[0]):\n",
    "    if i == 0:\n",
    "        model = KAN(width=[2,1,1], grid=grids[i], k=k)\n",
    "    if i != 0:\n",
    "        model = KAN(width=[2,1,1], grid=grids[i], k=k).initialize_from_another_model(model, dataset['train_input'])\n",
    "    results = model.train(dataset, opt=\"LBFGS\", steps=steps, stop_grid_update_step=30)\n",
    "    train_losses += results['train_loss']\n",
    "    test_losses += results['test_loss']\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6be8ba55",
   "metadata": {},
   "source": [
    "### Training dynamics of losses display staircase structures (loss suddenly drops after grid refinement)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "156f68a2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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n8+hQ4eIi4sDdJ0byzRNbrvtNhYuXMgXX3xBt27d6ryuz3TzOdW1PhlLPtfN0uVamuStt94yfXx8zH/9619menq6OWvWLDMwMNA8cOCA1aW1WXfccYe5fPlyc//+/ebatWvNyy67zAwODq69pn/961/N0NBQc+HChebWrVvNa6+91oyLizOLi4strtzzlZSUmN9++6357bffmoD51FNPmd9++6158OBB0zQbd21vvfVWs0uXLuZnn31mfvPNN+b5559vpqSkmDU1NVa9LY/zU9e5pKTEvOOOO8zVq1ebGRkZ5rJly8yRI0eanTt31nVuot/85jdmaGiouXz5cjM7O7v2UV5eXruPPtPN41TX2lM+1wpCFklLSzOTkpJMu91uDhkypM5wQmm6q6++2oyLizN9fHzM+Ph484orrjC3b99e+7rL5TLvv/9+MzY21vT19TXHjBljbt261cKK245ly5aZQL3H9OnTTdNs3LWtqKgwb7vtNjMiIsL09/c3L7vsMjMzM9OCd+O5fuo6l5eXmxMmTDCjoqJMHx8fMzEx0Zw+fXq9a6jrfGonu8aAOX/+/Np99JluHqe61p7yuTa+K1ZERESkw1EfIREREemwFIRERESkw1IQEhERkQ5LQUhEREQ6LAUhERER6bAUhERERKTDUhASERGRDktBSERERDosBSERERHpsBSERKTdmzFjBlOmTLG6DBHxQApCIiIi0mEpCIlIu/Huu+8ycOBA/P396dSpExdccAF33XUXr732Gu+//z6GYWAYBsuXLwfgyJEjXH311YSHh9OpUycmT57MgQMHao93oiVpzpw5REdHExISwi233EJVVZU1b1BEmp231QWIiDSH7Oxsrr32Wh577DGmTp1KSUkJq1at4sYbbyQzM5Pi4mLmz58PQEREBOXl5YwbN45zzz2XlStX4u3tzcMPP8zFF1/Mli1bsNvtAHz++ef4+fmxbNkyDhw4wE033URkZCSPPPKIlW9XRJqJgpCItAvZ2dnU1NRwxRVXkJSUBMDAgQMB8Pf3x+FwEBsbW7v/f/7zH7y8vHj55ZcxDAOA+fPnExYWxvLly5kwYQIAdrudV155hYCAAPr378+DDz7IXXfdxUMPPYSXlxrVRdo6/b9YRNqFlJQUxo8fz8CBA7nqqqt46aWXKCgoaHD/jRs3snfvXoKDgwkKCiIoKIiIiAgqKyvZt29fneMGBATUPh85ciSlpaUcOnSoRd+PiLQOtQiJSLtgs9lYunQpq1evZsmSJfzzn//k3nvvZd26dSfd3+VykZqayhtvvFHvtaioqFOe70Qrkoi0bQpCItJuGIbB6NGjGT16NPfddx9JSUksWrQIu92O0+mss++QIUNYsGBBbSfohmzevJmKigr8/f0BWLt2LUFBQXTp0qVF34uItA7dGhORdmHdunU8+uijbNiwgczMTBYuXMixY8fo168fXbt2ZcuWLezatYu8vDyqq6u5/vrriYyMZPLkyaxatYqMjAxWrFjB7bffzuHDh2uPW1VVxS9/+UvS09P5+OOPuf/++7ntttvUP0iknVCLkIi0CyEhIaxcuZJnnnmG4uJikpKSePLJJ5k4cSJDhw5l+fLlDB06lNLSUpYtW8bYsWNZuXIld999N1dccQUlJSV07tyZ8ePH12khGj9+PL169WLMmDE4HA6uueYaHnjgAeveqIg0K8M0TdPqIkREPNGMGTMoLCzkvffes7oUEWkhatsVERGRDktBSERERDos3RoTERGRDkstQiIiItJhKQiJiIhIh6UgJCIiIh2WgpCIiIh0WApCIiIi0mEpCImIiEiHpSAkIiIiHZaCkIiIiHRY/x9CySKE4Ykj+AAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(train_losses)\n",
    "plt.plot(test_losses)\n",
    "plt.legend(['train', 'test'])\n",
    "plt.ylabel('RMSE')\n",
    "plt.xlabel('step')\n",
    "plt.yscale('log')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6ed8d26b",
   "metadata": {},
   "source": [
    "### neural scaling laws"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "8301085c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'RMSE')"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_params = 3 * grids\n",
    "train_vs_G = train_losses[(steps-1)::steps]\n",
    "test_vs_G = test_losses[(steps-1)::steps]\n",
    "plt.plot(n_params, train_vs_G, marker=\"o\")\n",
    "plt.plot(n_params, test_vs_G, marker=\"o\")\n",
    "plt.plot(n_params, 100*n_params**(-4.), ls=\"--\", color=\"black\")\n",
    "plt.xscale('log')\n",
    "plt.yscale('log')\n",
    "plt.legend(['train', 'test', r'$N^{-4}$'])\n",
    "plt.xlabel('number of params')\n",
    "plt.ylabel('RMSE')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
